<?php 

/** DAO de Condicaos */
class DaoCondicao extends DAO {
	
	public function get($id) {
		$select = db_select('condicao')
		->fields('condicao')
		->condition('id', $id)
		->execute()
		->fetchAll();
		
		$condicao = new Condicao();
		foreach($select as $row) {
			$condicao->id 					= $row->id;
			$condicao->nome 				= $row->nome;
			$condicao->restricoes		= $this->getRestricoes($condicao->id);
		}
		
		return $condicao;
	}
	
	/** Carrega varias instancias do banco */
	public function listar() {
		$select = db_select('condicao')
								->fields('condicao')
									->execute()
										->fetchAll();

		$condicaos = array();
		foreach($select as $row) {
			$condicao 							= new Condicao();
			$condicao->id 					= $row->id;
			$condicao->nome 				= $row->nome;
			$condicao->restricoes		= $this->getRestricoes($condicao->id);
				
			array_push($condicaos, $condicao);
		}

		return $condicaos;
	}

	/** Funcao que carrega as restricoes de uma determinada condicao */
	public function getRestricoes($condicao_id) {
		$select = db_select('restricao_condicao', 'r')
								->fields('r')
									->condition('condicao_id', $condicao_id)
										->execute()
											->fetchAll();
		
		$modalidades_restritas = array();
		foreach($select as $row) {
			$modalidade = DAO::daoFactory(Modalidade::TYPE)->get($row->modalidade_id);
			array_push($modalidades_restritas, $modalidade);
		}
		
		return $modalidades_restritas;
	}

}